home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 8 / Eagles_Nest_Mac_Collection_Disc_8.TOAST / Developer Environments / MacCjr / MacC Jr / Library Folder / C Include Folder / AppleTalk.h next >
Encoding:
C/C++ Source or Header  |  1987-01-06  |  5.4 KB  |  183 lines  |  [TEXT/EDIT]

  1. /*  ATalk.h    Gijs Mos
  2.     Header file for use with AppleTalk. 
  3.     © Copyright 1985 Gijs Mos
  4.             1986 Consulair Corp
  5. */
  6.  
  7. #ifndef ABincluded
  8. #define ABincluded
  9.  
  10. #ifndef MacdefsLoaded
  11. #include "MacDefs.h"
  12. #endif
  13.  
  14. /* ABusRecord sizes */
  15.  
  16. #define lapSize    20    /* LAP */
  17. #define ddpSize    26    /* DDP */
  18. #define    nbpSize    26    /* NBP */
  19. #define atpSize    56    /* ATP */
  20.  
  21. /* ABCallTypes */
  22.  
  23. #define    tLAPRead    0
  24. #define tLAPWrite    1
  25. #define tDDPRead    2
  26. #define tDDPWrite    3
  27. #define tNBPLookup    4
  28. #define tNBPConfirm    5
  29. #define tNBPRegister    6
  30. #define tATPSndRequest    7
  31. #define tATPGetRequest    8
  32. #define tATPSndRsp    9
  33. #define tATPAddRsp    10
  34. #define tATPRequest    11
  35. #define tATPResponse    12
  36.  
  37. /* Applicable OSErrors */
  38.  
  39. #define noErr        0    /* No error */
  40. #define ddpSktErr    -91    /* DDP socket error */
  41. #define ddpLenErr    -92    /* DDP datagram or LAP datalength too big */
  42. #define noBridgeErr    -93    /* No bridge found */
  43. #define lapProtErr    -94    /* Attach/Detach ALAP error */
  44. #define excessCollsns    -95    /* No CTS after 32 RTS or in use 32 times */
  45. #define portInUse    -97    /* Driver open. Port in use */
  46. #define portNotCf    -98    /* Driver open. Port not configured */
  47. #define resNotFound    -192    /* Resource not found */
  48. #define NBPBuffOvr    -1024    /* Buffer overflow in LookupName */
  49. #define NBPNoConfirm    -1025    /* Name not confirmed on ConfirmName  */
  50. #define NBPConfDiff    -1026    /* Name confirmed at different socket */
  51. #define NBPDuplicate    -1027    /* Duplicate name exists already */
  52. #define NBPNotFound    -1028    /* Name not found on remove */
  53. #define NBPNISErr    -1029    /* Error trying to open the NIS */
  54. #define ReqFailed    -1096    /* SendRequest failed: retry count exceeded */
  55. #define TooManyReqs    -1097    /* Too many concurrent requests */
  56. #define TooManySkts    -1098    /* Too many concurrent responding-sockets */
  57. #define BadATPSkt    -1099    /* Bad ATP-responding socket */
  58. #define BadBuffNum    -1100    /* Bad response buffer number specififed */
  59. #define NoRelErr    -1101    /* No release received */
  60. #define CBNotFound    -1102    /* Control Block (TCB or RspCB) not found */
  61. #define NoSendResp    -1103    /* AddResponse issued without SendResponse */
  62. #define NoDataArea    -1104    /* No data area for request to MPP */
  63. #define ReqAborted    -1105    /* SendRequest aborted by RelTCB */
  64.  
  65. struct LAPAdrBlock {
  66.     char    dstNodeID;            /* destination node ID */
  67.     char    srcNodeID;            /* source node ID */
  68.     char    LAPProtType;            /* LAP protocol type */
  69. };
  70. typedef struct LAPAdrBlock LAPAdrBlock;
  71.  
  72. struct Str32 {
  73.     char    str32Count;            /* # of chars */
  74.     char    str32Cont[33];            /* string content+padding */
  75. };
  76. typedef struct Str32 Str32;
  77.  
  78. struct EntityName {
  79.     Str32    objStr;                /* object */
  80.     Str32    typeStr;            /* Type */
  81.     Str32    zoneStr;            /* Zone */
  82. };
  83. typedef struct EntityName EntityName;
  84. typedef EntityName *EntityPtr;
  85.  
  86. struct RetransType {
  87.     char    retransInterval;        /* in 8 tick units */
  88.     char    retransCount;            /* # of attempts */
  89. };
  90. typedef struct RetransType RetransType;
  91.  
  92. typedef char BitMapType;
  93.  
  94. struct BDSElement {
  95.     short    buffSize;            /* buffer size in bytes */
  96.     Ptr    buffPtr;            /* buffer pointer */
  97.     short    dataSize;            /* packet size */
  98.     long    userBytes;
  99. };
  100. typedef struct BDSElement BDSElement;
  101.  
  102. struct BDSType {
  103.     BDSElement    elements[7];
  104. };
  105. typedef struct BDSType BDSType;
  106. typedef BDSType *BDSPtr;
  107.  
  108. struct AddrBlock {
  109.     short    aNet;                /* network id */
  110.     char    aNode;                /* node ID */
  111.     char    aSocket;            /* socket number */
  112. };
  113. typedef struct AddrBlock AddrBlock;
  114.  
  115. struct LapProto {
  116.     LAPAdrBlock    lapAddress;        /* dest or src node id */
  117.     short        lapReqCount;        /* length of frame data */
  118.                         /* or bufsize in bytes */
  119.     short        lapActCount;        /* # frame data act. rec. */
  120.     Ptr        lapDataPtr;        /* pointer to data */
  121. };
  122.  
  123. struct DdpProto {
  124.     short        ddpType;        /* DDP protocol type */
  125.     short        ddpSocket;        /* source or rec socket */
  126.     AddrBlock    ddpAddress;        /* dest or src address */
  127.     short        ddpReqCount;        /* length of datagram
  128.                           or buffersize in bytes */
  129.     short        ddpActCount;        /* no of bytes rec. */
  130.     Ptr        ddpDataPtr;        /* buffer pointer */
  131.     short        ddpNodeID;        /* original dest node ID */
  132. };
  133.  
  134. struct NbpProto {
  135.     EntityPtr    nbpEntityPtr;        /* ^to entityname */
  136.     Ptr        nbpBufPtr;        /* ^to buffer */
  137.     short        nbpBufSize;        /* buffer size in bytes */
  138.     short        nbpDataField;        /* #addresses or socket # */
  139.     AddrBlock    nbpAddress;        /* socket address */
  140.     RetransType    nbpRetransmitInfo;    /* retransmission info */
  141. };
  142.  
  143. struct AtpProto {
  144.     short        atpSocket;        /* list. or resp. socket */
  145.     AddrBlock    atpAddress;        /* dest. or src. sock. */
  146.     short        atpReqCount;        /* buffer size */
  147.     Ptr        atpDataPtr;        /* ponter to req. buffer */
  148.     BDSPtr        atpRspBDSPtr;        /* pointer ro resp. BDS */
  149.     BitMapType    atpBitMap;        /* transaction bitmap */
  150.     short        atpTransID;        /* transaction ID */
  151.     short        atpActCount;        /* bytes received */
  152.     long        atpUserData;        /* user bytes */
  153.     char        atpXO;            /* exactly once */
  154.     char        atpEOM;            /* end of message */
  155.     short        atpTimeOut;        /* retry TO (secs) */
  156.     short        atpRetries;        /* # retries */
  157.     short        atpNumBufs;        /* #buffers in BDS */
  158.     short        atpNumRsp;        /* #responsees or seqnum */
  159.     short        atpBDSSize;        /* #elems in resp BDS */
  160.     long        atpRspUData;        /* user bytes send or rec */
  161.     Ptr        atpRspBuf;        /* ptr to resp. buffer */
  162.     short        atpRspSize;        /* size of atpRspBuf */
  163. };
  164.  
  165.  
  166. struct ABusRecord {
  167.     short    abOpcode;            /* type of call */
  168.     short    abResult;            /* result code */
  169.     long    abUserReference;        /* for your use */
  170.     union {
  171.         struct LapProto    lap;        /* lap specifics */
  172.         struct DdpProto    ddp;        /* ddp specifics */
  173.         struct NbpProto nbp;        /* nbp specifics */
  174.         struct AtpProto atp;        /* atp specifics */
  175.     } p;
  176. };
  177. typedef struct ABusRecord ABusRecord;
  178. typedef ABusRecord    *ABRecPtr;
  179. typedef ABRecPtr    *ABRecHandle;
  180.  
  181. #endif
  182.  
  183.